Project Entities
These entities are used by the Project adapter and encapsulate data objects used by Epicenter Project API.
Enums
Access type
The ACCESS_TYPE enum defines project access levels.
| Value | Description |
|---|---|
PRIVATE | Only the owner can access. |
PUBLIC | Publicly accessible, no login required. |
AUTHENTICATED | Participants must authenticate to access the project's simulations. |
Worker partition
The WORKER_PARTITION enum identifies which compute cluster a simulation runs in.
| Value | Description |
|---|---|
NONE | No partition - the simulation cannot run. |
ALL | Any cluster |
FREE | For admins' personal accounts |
DEVELOPMENT | For developing and testing projects before going to production |
LICENSED | Shared with other paying customers |
ACCOUNT | Dedicated compute for the account |
Phylogeny
The PHYLOGENY enum identifies a project's phylogeny.
| Value | Description |
|---|---|
ORIGINAL | Original version |
HISTORICAL | In this version, the run replay data for Excel, Simlang, and Vensim models is stored in a more compact and efficient format. |
REFERENTIAL | Changes the way the run replay data is stored for Python3 models. |
ORDERED | A further improvement to the way the run replay data is stored for Excel, Simlang, Vensim, Powersim, and Stella models. |
EVENTUAL | Updated the naming convention of the events that are sent to the model. For example, now the events are called onInitialized, onRestored, etc. |
TRANSMOGRIFIED | Improves the way Epicenter runs proxies. |
REANIMATED | Changes the default run start-up ritual. |
SILENT | Inhibits push channel notifications unless allowChannel is true, which by default is false. |
File type
The FILE_TYPE enum describes a file system as case-sensitive or case-insensitive.
| Value | Description |
|---|---|
INSENSITIVE | case-insensitive |
SENSITIVE | case-sensitive |
Interfaces
Member
A Member object describes a member of the admin. The members property of a project contains an array of Member objects.
Properties
role:ROLEenum - The role of the adminadminKey:string- Unique key identifying the adminobjectType:'project'- Type of object
Deployment
A Deployment object stores the deployment settings of a project in the deployment property of a personal or team project.
Properties
defaultGroupName:string- The group name used to create a group after an SSO login.autoCreatePlayer:boolean- Iftrue, a new user record is created automatically on first login.loginFile:string- The redirect destination after logout, timeout or unsuccessful authentication.welcomeFile:string- The page that opens after a successful authentication.groupFile:string- The page where a user can select a group after authentication.
Types
Project
Project is a union type for projects, which can be either:
TeamProject- a team projectPersonalProject- a personal project
Team project
The TeamProject interface contains the properties of a team project.
Properties
concurrentRunLimit:number- Maximum concurrent runs allowed for the projectmodelFile:string- The name of the model file to load for the project.available:boolean- Availability statusallowWorldSelfAssign:boolean- IfTrue, allow simulation participants to move from one classroom to another. WhenFalse, a facilitator must assign participants to the classrooms.objectType:'team'- Identifies this as a team project.accessType:ACCESS_TYPE enum value- The project's access levelsessionTimeoutSeconds:number- Idle time in seconds before a model can be removed from memory.projectKey:string- A globally unique project identifiermembers:Member[]- List of project memberschannelEnabled:boolean- IfTrue, the simulation participants can sign up for push notifications.workerPartition:WORKER_PARTITION enum value- Worker partition type. Overrides the account-level worker partition setting.name:string- A descriptive name for the projectphylogeny:PHYLOGENY enum value- The project's phylogeny. Always set to latest system level at the time of project creation.multiPlayerEnabled:boolean- Whether multiplayer features are enabledshortName:string- A project identifier unique for the account. Used in the project URL.approximateRunCount:number- Estimated run countpricing:{ amount: number }- Project owners can decide to charge users. This is the amount (in cents) for a user to sign up.dataRetentionDays:number- The number of days Forio stores the project data.fileType:FILE_TYPE enum value- The file system containing project files can be case-sensitive or case-insensitive.dimensions:'UNIVERSE' | 'MULTIVERSE'- Dimensional scopedeployment:Deployment- Deployment configurationchannelProtocol:'OUMUAMUA' | 'COMETD'- Identifies the server used for push notifications.
Personal project
The PersonalProject interface contains the properties of an admin's personal project.
Properties
concurrentRunLimit:number- Maximum concurrent runs allowed for the projectavailable:boolean- Availability statusobjectType:'personal'- Identifies this as a personal project.accessType:ACCESS_TYPE enum value- Access levelsessionTimeoutSeconds:number- Idle time in seconds before a model can be removed from memory.projectKey:string- A globally unique project identifierworkerPartition:keyof typeof WORKER_PARTITION- Worker partition type. Overrides the account-level worker partition setting.name:string- A descriptive name for the projectphylogeny:PHYLOGENY enum value- The project's phylogeny. Always set to latest system level at the time of project creation.shortName:string- A project identifier unique for the account. Used in the project URL.approximateRunCount:number- Estimated run countfileType:FILE_TYPE enum value- The file system containing project files can be case-sensitive or case-insensitive.deployment:Deployment- Deployment configurationchannelProtocol:'OUMUAMUA' | 'COMETD'- Identifies the server used for push notifications.channelEnabled:boolean- IfTrue, the simulation participants can sign up for push notifications.